import { NgModule } from '@angular/core'
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { MdlModule } from '@angular-mdl/core';
import { TableModule } from 'primeng/table';
import { ScrollPanelModule } from 'primeng/scrollpanel';
import {
  TreeModule, BreadcrumbModule, ToolbarModule, InputTextModule, DialogModule, RadioButtonModule,
  InputTextareaModule, PanelModule, ButtonModule, AutoCompleteModule, CalendarModule,
  CarouselModule, TabViewModule, PanelMenuModule, SharedModule,ToggleButtonModule,FileUploadModule,
  ConfirmDialogModule, ConfirmationService, DropdownModule, DragDropModule, TooltipModule,
  CheckboxModule, InputSwitchModule, ColorPickerModule, LightboxModule, DataGridModule
} from 'primeng/primeng';
import { DataViewModule } from 'primeng/dataview';
import { QkSharedModule } from '../common/module/qkshare.module';
import { formRoutes } from './form.routes';
import { FormComponent } from './form.component';
import { FormDesignComponent } from './design/fb-design.component';
import { FormBaseInfoComponent } from './design/baseinfo/fb-baseinfo.component';
import { FormDataSetComponent } from './design/dataset/fb-dataset.component';
import { FormDataPushComponent } from './design/datapush/fb-datapush.component';
import { FormDrawerComponent } from './design/drawer/fb-drawer.component';
import { FbDynamicFormComponent } from './design/drawer/fb-dynamic-form.component';
import { FbDynamicAssemblyComponent } from './design/drawer/fb-dynamic-assembly.component';
import { FbDynamicAttributesComponent } from './design/drawer/fb-dynamic-attributes.component';
import { QkInput } from './design/drawer/assembly/input/qk-input.component';
import { QkText } from './design/drawer/assembly/text/qk-text.component';
import { QkLine } from './design/drawer/assembly/line/qk-line.component';
import { QkTextarea } from './design/drawer/assembly/textarea/qk-textarea.component';
import { QkImage } from './design/drawer/assembly/image/qk-image.component';
import { QkDropdown } from './design/drawer/assembly/dropdown/qk-dropdown.component';
import { QkCheckbox } from './design/drawer/assembly/checkbox/qk-checkbox.compontent';
import { QkRadio } from './design/drawer/assembly/radio/qk-radio.component';
import { QkTable } from './design/drawer/assembly/table/qk-table.component';
import { QkInputAttributes } from './design/drawer/attributes/input/qk-input-attributes.component';
import { QkTextAttributes } from './design/drawer/attributes/text/qk-text-attributes.component';
import { QkLineAttributes } from './design/drawer/attributes/line/qk-line-attributes.component';
import { QkTextareaAttributes } from './design/drawer/attributes/textarea/qk-textarea-attributes.component';
import { QkImageAttributes } from './design/drawer/attributes/image/qk-image-attributes.component';
import { QkDropdownAttributes } from './design/drawer/attributes/dropdown/qk-dropdown-attributes.component';
import { QkCheckboxAttributes } from './design/drawer/attributes/checkbox/qk-checkbox-attributes.component';
import { QkRadioAttributes } from './design/drawer/attributes/radio/qk-radio-attributes.component';
import { FormPrintComponent } from './design/print/fb-print.component';
import { FormAuthorityComponent } from './authority/fb-authority.component';
import { FormRepositoryComponent } from './repository/fb-repository.component';
import { FormRepositoryDetailComponent } from './repository/fb-repository-detail.component'
import { QkCalendar } from 'app/form/design/drawer/assembly/calendar/qk-calendar.component';
import { QkCalendarAttributes } from 'app/form/design/drawer/attributes/calendar/qk-calendar-attributes.component';
import { QkTableAttributes } from 'app/form/design/drawer/attributes/table/qk-table-attributes.component';
import { QkItemAttributes } from 'app/form/design/drawer/attributes/common/qk-item-attributes.component';
import { QkTableColAttributes } from 'app/form/design/drawer/attributes/common/qk-tablecol-attributes.component';
import { QkContentAttributes } from 'app/form/design/drawer/attributes/common/qk-content-attributes.component';
@NgModule({
  imports: [
    FormsModule,
    ReactiveFormsModule,
    CommonModule,
    MdlModule,
    TreeModule,
    BreadcrumbModule,
    ToolbarModule,
    PanelModule,
    ButtonModule,
    AutoCompleteModule,
    InputTextModule,
    InputTextareaModule,
    TabViewModule,
    CarouselModule,
    PanelMenuModule,
    SharedModule,
    ConfirmDialogModule,
    DialogModule,
    CalendarModule,
    DropdownModule,
    DragDropModule,
    TooltipModule,
    CheckboxModule,
    InputSwitchModule,
    ColorPickerModule,
    LightboxModule,
    DataGridModule,
    RadioButtonModule,
    ToggleButtonModule,
    ScrollPanelModule,
    QkSharedModule,
    TableModule,
    FileUploadModule,
    DataViewModule
  ],
  declarations: [
    FormComponent,
    FormDesignComponent,
    FormBaseInfoComponent,
    FormDataSetComponent,
    FormDataPushComponent,
    FormDrawerComponent,
    FbDynamicFormComponent,
    FbDynamicAssemblyComponent,
    FbDynamicAttributesComponent,
    QkInput, QkText, QkLine, QkTextarea, QkDropdown, QkCalendar, QkImage, QkRadio, QkCheckbox, QkTable,
    QkInputAttributes, QkTextAttributes, QkLineAttributes, QkTextareaAttributes, QkCheckboxAttributes,
    QkDropdownAttributes, QkCalendarAttributes, QkImageAttributes, QkRadioAttributes, QkItemAttributes,
    FormPrintComponent, FormAuthorityComponent, FormRepositoryComponent, FormRepositoryDetailComponent,
    QkTableAttributes, QkTableColAttributes, QkContentAttributes
  ],
  entryComponents: [
    QkItemAttributes,
    QkTableColAttributes,
    QkContentAttributes
  ],
  exports: [
    FormDrawerComponent,
    FbDynamicFormComponent,
    FbDynamicAssemblyComponent,
    FbDynamicAttributesComponent,
    QkInput, QkText, QkLine, QkTextarea, QkDropdown, QkCalendar, QkImage, QkRadio, QkCheckbox, QkTable
  ],
  providers: [
    ConfirmationService
  ]
})
export class FormShareModule { }
